package com.tx.core.generator.model;

import java.util.List;

/**
 * 前端视图逻辑生成模型<br/>
 * <功能详细描述>
 * 
 * @author  PengQingyang
 * @version  [版本号, 2022年10月7日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface ViewGenModel {
    
    /**
     * 是否拥有基础属性属性<br/>
     * <功能详细描述>
     * @return [参数说明]
     * 
     * @return boolean [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public boolean isHasBasicDataProperty();
    
    /**
     * 是否拥有基础数据枚举属性<br/>
     * <功能详细描述>
     * @return [参数说明]
     * 
     * @return boolean [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    public boolean isHasBasicDataEnumProperty();
    
    /**
     * @return 返回 parentProperty
     */
    EntityProperty getParentProperty();
    
    /**
     * @return 返回 basePackage
     */
    String getBasePackage();
    
    /**
     * @return 返回 entityComment
     */
    String getEntityComment();
    
    /**
     * @return 返回 entityTypeName
     */
    String getEntityTypeName();
    
    /**
     * @return 返回 entityTypeSimpleName
     */
    String getEntityTypeSimpleName();
    
    /**
     * @return 返回 propertyList
     */
    List<EntityProperty> getPropertyList();
    
    /**
     * @return 返回 pkProperty
     */
    EntityProperty getPkProperty();
    
    /**
     * @return 返回 codeProperty
     */
    EntityProperty getCodeProperty();
    
    /**
     * @return 返回 validProperty
     */
    EntityProperty getValidProperty();
    
    /**
     * @return 返回 parentIdProperty
     */
    EntityProperty getParentIdProperty();
    
    /**
     * @return 返回 nameProperty
     */
    EntityProperty getNameProperty();

    /**
     * @return 返回 viewablePropertyList
     */
    List<EntityProperty> getViewablePropertyList();
    
}